Synchronized cylinder event based spark

ABSTRACT

A method to deliver spark during a start for an internal combustion engine is described. The method provides individual cylinder spark angle control based on the number of cylinders after synchronization between engine timing and an engine controller are achieved. The method offers improved engine emissions while maintaining engine speed run-up performance.

FIELD OF INVENTION

The present invention relates to a method for controlling an internalcombustion engine and more particularly to a method for adjusting sparkbased on the number of cylinder events after synchronization hasoccurred between engine timing and an engine controller during a start.

BACKGROUND OF THE INVENTION

Engine starting control has a significant impact on engine emissions andengine speed run-up. Spark placement, relative to piston positioninfluences both torque and emissions. Torque is necessary to acceleratean engine from cranking speed up to idle speed. Further, low startingemissions are desirable when catalysts are cold and their efficiency islow. In general, advancing spark increases engine torque while retardingspark reduces emissions. Therefore, it is important to provideconsistent well-placed spark timing to ensure engine speed run-up withreduced emissions.

One method to adjust spark while an engine is cold is described in U.S.Pat. No. 6,135,087. This method provides spark advance based on coolanttemperature and engine speed. Further, the amount of spark advanceaccounts for engine position and time from the start-to-run transfer.More particularly, the method initially determines whether the desiredspark advance is before top-dead-center and whether the throttle isopen. If so, the method uses engine speed and coolant temperature todetermine a spark advance multiplier. Thereafter, the current engineposition pulse is loaded and an engine position multiplier isinterpolated and applied to the spark advance multiplier value. Next,the time since the start-to-run is loaded and a start-to-run multiplieris interpolated and applied to the spark advance multiplier value.Finally, the spark is advanced via the spark advance multiplier value asadjusted by the engine position pulse multiplier and the time sincestart-to-run transfer multiplier. Upon engine operation reaching anafter top-dead-center condition or when the throttle is closed, themethod is exited and the engine is returned to normal spark control.

The inventors herein have recognized several disadvantages of thisapproach. Namely, the approach changes spark advance based on engineposition, whether or not engine timing is aligned with an enginecontroller operation, termed here as “synchronization”. In other words,when an engine is turned off, it generally stops at a random position.In general, key-off removes power from the engine controller and sensorsso that engine position data is lost. Consequently, the enginecontroller monitors several signals during a start to reestablish engineposition. Thus, engine position is changing while the engine controllermonitors cam and crank signals, attempting to determine engine positionand synchronization. The number of cylinder events before engineposition can be established will vary from start to start depending onwhere the engine has stopped and on the complexity of the engineposition monitoring system. Therefore, if spark based on position isdelivered without regard to synchronization between the enginecontroller and the engine, or without regard to fuel delivery, the angleat which spark is delivered may vary from start to start.

As an example, a fueled cylinder receiving spark may receive spark at anangle intended for the next or prior fueled cylinder. As such, engineposition based spark as presented in the prior art, may deliver lessthan optimal spark.

Furthermore, the method functions only when base spark advance is aftertop-dead-center (ATDC) and if the throttle is open. Therefore, theabove-mentioned approach does not optimally deliver spark during startwhere the throttle is closed and retarded spark is used to loweremissions.

Another method to adjust spark when an engine is cold is described inU.S. Pat. No. 5,483,946 owned by the assignee of the present invention.The method describes retarding ignition timing from a nominal valueduring a period following engine start and returning the ignition timingto the nominal value by termination of the period, where the period isbased on time.

The inventors herein have also recognized that while this approach workswell during cold engine operation, it can be inaccurate during startbecause the method adjusts spark in relation to time. Spark based ontime delivers a spark advance that is a function of time since the timeris started. However, there is not a one to one relationship betweenengine position and time due to variability in engine stopping locationas described above. Further, engine position is a mechanical dimension;time is a continuum, which lacks spatial dimensions.

SUMMARY OF THE INVENTION

One embodiment of the present invention includes a method that improvesspark placement and consistency during start. The method comprises:counting a number of cylinder events after synchronization betweenengine timing and a engine controller is determined; and adjustingcylinder spark angle based on said counted number of cylinder events.This method can be used to reduce the above-mentioned limitations of theprior art approaches.

By counting the number of cylinder events after synchronization, anddelivering spark based on the cylinder count, the inventors herein haveimproved engine starting. In this embodiment, spark and fuel deliveryare delayed until synchronization is achieved. Thereafter, cylinderevent counting, fuel delivery, and spark delivery begin. In other words,the controller can coordinate spark and fuel delivery in unison.Therefore, the first fueled cylinder and subsequent cylinders willreceive consistent spark, start after start, and independent of stoppinglocation. This can be advantaged to produce low emissions and uniformengine speed run-up.

Further, another advantage of the present invention, derived fromcounting the number of cylinder events after synchronization, is that abetter match between cylinder mixture and spark advance is possible. Theinventors herein have recognized that during a start, changes occurwithin an engine and its surroundings. The first few fired cylindershave an air fuel mixture that is composed of fresh charge and fuel. Inother words, there is very little EGR or residuals during the first fewcombustion events. After the first few cylinders fire and expel theirresiduals, the residuals affect mixtures in other cylinders. Theappropriate spark angle changes with the amount of residual and thenumber of cylinder events after synchronization determine the residualamount. Therefore, the combustion process in an engine is not linked totime, but to the number of cylinder events after synchronization hasoccurred.

Furthermore, since cylinders receiving fuel have distinct individualair-fuel-residual mixtures, it is desirable to provide spark suited tothese mixtures. Spark delivery based on the number of cylinder eventsafter synchronization allows the engine controller to deliver uniquespark angles to individual cylinders. This allows the engine controllerto account for individual cylinder air-fuel mixture differences.

In addition, fuel composition also affects mixture preparation and mayinfluence engine speed run-up. Fuels containing alcohol provides lessenergy affecting torque and engine speed. If spark is delivered based onengine speed and load, the controller may alter the spark in anundesirable manor. Therefore, spark delivery that solely or additionallytakes into account the counted number of cylinders aftersynchronization, can be used to improve spark placement consistency withregard to engine control and combustion mixtures.

The present invention provides a number of advantages. The presentinvention provides the advantage of improved spark control during enginestarting, resulting in lower emissions. This advantage is especiallybeneficial when a catalyst is cold and its efficiency is low. Inaddition, the present invention improves engine speed run-upconsistency. Repeatable engine speed during starting improves ownerconfidence and satisfaction since the engine behaves in a reliable andpredictable manor.

The above advantages and other advantages and features of the presentinvention will be readily apparent from the following detaileddescription of the preferred embodiments when taken in connection withthe accompanying drawings.

BRIEF DESCRIPTION OF THE DRAWINGS

The advantages described herein will be more fully understood by readingan example of an embodiment in which the invention is used to advantage,referred to herein as the Description of Invention, with reference tothe drawings, wherein:

FIG. 1 is a schematic diagram of an engine wherein the invention is usedto advantage;

FIG. 2 is a high level flow chart describing fueled cylinder event basedspark during a start;

FIG. 3 is a high level flow chart describing synchronized cylinder eventbased spark during a start;

FIG. 4 is a high level flow chart of an alternate method describingfueled cylinder event based spark during a start;

FIG. 5 is a high level flow chart of an alternate method describingsynchronized cylinder event based spark during a start;

FIG. 6 is a plot showing an example of conventional time based spark andthe hydrocarbon emissions produced during a start;

FIG. 7 is a plot showing fueled cylinder event based spark and thehydrocarbon emissions produced during a start;

FIG. 8 is a table of example spark delivered during a start;

FIG. 9 is a high level flow chart describing sequential fuel control(SEFI); and

FIG. 10 is a high level flow chart describing Big-Bang fueling.

DESCRIPTION OF INVENTION

Referring to FIG. 1, internal combustion engine 10, comprising aplurality of cylinders, one cylinder of which is shown in FIG. 1, iscontrolled by electronic engine controller 12. Engine 10 includescombustion chamber 30 and cylinder walls 32 with cam shaft 130 andpiston 36 positioned therein and connected to crankshaft 40. Combustionchamber 30 is known communicating with intake manifold 44 and exhaustmanifold 48 via respective intake valve 52 an exhaust valve 54. Intakemanifold 44 is also shown having fuel injector 66 coupled thereto fordelivering liquid fuel in proportion to the pulse width of signal FPWfrom controller 12. Fuel is delivered to fuel injector 66 by fuel system(not shown) including a fuel tank, fuel pump, and fuel rail (not shown).Alternatively, the engine may be configured such that the fuel isinjected directly into the combustion chamber, which is known to thoseskilled in the art as direct injection. Intake manifold 44 is showncommunicating with throttle body 58 via throttle plate 62.

Conventional distributorless ignition system 88 provides ignition sparkto combustion chamber 30 via spark plug 92 in response to controller 12.Two-state exhaust gas oxygen sensor 76 is shown coupled to exhaustmanifold 48 upstream of catalytic converter 70. Two-state exhaust gasoxygen sensor 98 is shown coupled to exhaust manifold 48 downstream ofcatalytic converter 70. Sensor 76 provides signal EGO1 to controller 12.Alternatively, a Universal Exhaust Gas Oxygen sensor may be used forsensor 98.

Controller 12 is shown in FIG. 1 as a conventional microcomputerincluding: microprocessor unit 102, input/output ports 104, andread-only memory 106, random access memory 108, and a conventional databus. Controller 12 is shown receiving various signals from sensorscoupled to engine 10, in addition to those signals previously discussed,including: engine coolant temperature (ECT) from temperature sensor 112coupled to cooling sleeve 114; a measurement of manifold absolutepressure (MAP) form pressure sensor 122 coupled to intake manifold 44; ameasurement (ACT) of engine air amount temperature or manifoldtemperature from temperature sensor 117; a cam position signal (CAM)from cam sensor 150; and a profile ignition pickup signal (PIP) from aHall effect sensor 118 coupled to a crankshaft 40, and an engine speedsignal (RPM) from engine speed sensor 119. In a preferred aspect of thepresent invention, engine speed sensor 119 produces a predeterminednumber of equally spaced pulses every revolution of the crankshaft.

Referring to FIG. 2, a flowchart of a routine performed by controller 12when spark based on the number of fueled cylinder events is desired. Theperiod of the cylinder event signal in degrees is: 720/number of enginecylinders. The cylinder event signal identifies when a given enginecylinder reaches top-dead-center of compression stroke.

In step 210, engine operating conditions are read. Operating conditionsare determined by measuring engine coolant temperature, engine airtemperature, barometric pressure, catalyst temperature, time sinceengine last operated (soak time), and parameters alike. These parametersare used to compensate the engine spark angle request in steps 216 and218. The parameters influence engine operation in different waysdepending on their state. For example, lower catalyst temperaturesproduce spark angle retard, but higher catalyst temperatures advancespark angle.

In step 212, the routine decides to proceed based on whether the engineis rotating. If the engine is not rotating, the routine waits until thecrank position sensor 118 detects engine rotation. If the engine isrotating, the routine proceeds to step 214. In step 214, the controllerdetermines if a fueled cylinder event has occurred. If so, the fueledcylinder event counter is incremented and the routine proceeds to step216. If no newly fueled cylinders have occurred, the routine waits untila fueled cylinder event is observed.

In step 216, the desired spark request is looked-up from the table inFIG. 8, FNESPK. The spark values in the table will depend on how theengine is being controlled. Some applications will prefer a leancylinder air-fuel mixture promoting port oxidation, while otherapplications will prefer a rich air-fuel mixture with air injected intothe exhaust manifold. Because the in-cylinder mixtures are different,their spark requirements are also different, prompting differences inthe FNESPK table based on the application. FIG. 8 is an example of sparkdemand for lean in cylinder air-fuel mixtures.

After the desired spark is determined, the routine advances to step 218.In step 218, the spark may be modified depending on engine operatingconditions observed in step 210. Compensation for barometric pressure isstored in a function named FNBP. Depending on where nominal barometricpressure is defined in the function, spark is advanced or retarded fromthat point to achieve desired emissions and engine speed run-up. Thefunction has x dimensions of inches of Mercury and y dimensions ofchange (Δ) in spark, with units of angular degrees. Positive values inthe function advance spark while negative values retard spark.

Compensation is also provided for catalyst temperature by functionFNCAT. In general, FNCAT is calibrated to retard spark angle at lowercatalyst temperatures and advances spark angle at higher catalysttemperatures. Catalyst temperature may be measured or inferred. Thefunction has x dimensions of degrees Fahrenheit and y dimensions ofchange (Δ) in spark, with units of angular degrees.

Compensation for time since last engine operation, soak time, iscaptured in function FNST. In general, FNST is calibrated to retardspark as soak time increases and advance spark as soak time increases.The function has x dimensions of soak time in seconds and y dimensionsof change (Δ) in spark, with units of angular degrees.

All sources of spark compensation are combined into a single change inspark demand that is used to modify the spark angle from step 216. Theroutine then proceeds to step 220 where compensation for operator inputis provided. Operator input may take a number of forms including but notlimited to: changing throttle position, load request via electronicthrottle or electronically controlled valves, torque request, airconditioning, or any device or system that increases load on the engine.In this example, operator input is throttle position. If the operatorinputs a demand to the throttle, the throttle signal is processedthrough the function FNTHROTTLE. The function has x dimensions ofthrottle position with units of volts and y dimensions of change (Δ) inspark, with units of angular degrees. The function is calibrated toadvance spark as the throttle input increases, other inputs would followthe same form, increasing user demand advances spark. If the operatorinput is substantially zero, or less than a predetermined amount (e.g.,1-10%, or less than 5%, of total displacement), the function provides nocompensation for the operator input. The routine proceeds to step 222where the desired spark angle is delivered to the engine.

The routine then proceeds to step 224 where the decision is made tocontinue delivering spark based on the number of fueled cylinder eventsor exit to another method of spark control, e.g., independent of thenumber of fueled cylinder events. If the current number of fueledcylinder events is not less than the calibration parameter EVT_LIM, thenthe routine proceeds to step 214. If the number of fueled cylinderevents is greater than or equal to EVT_LIM, the routine proceeds to step226. In step 226, a transition is made from fueled cylinder event basedspark to another method of spark control. For example, time based sparkcontrol, where a timer is started after the last fueled cylinder eventbased spark is delivered and then spark is delivered as a function oftime.

Alternatively, the routine may be designed to transition to speed/loadbased spark. However, care should be exercised in the transition sincespark based on engine speed/load can be influenced by barometricpressure during starting because there is less oxygen at altitude thanwhen at sea level. Once the transition to the alternate spark controlmethod is complete, the routine is exited.

Referring to FIG. 3, a flowchart of a routine performed by controller 12when spark based on the number of synchronized cylinder events isdesired. Synchronization occurs when engine timing is aligned withengine controller operation. In step 310, engine operating conditionsare read. Operating conditions are determined by measuring enginecoolant temperature, engine air temperature, barometric pressure,catalyst temperature, time since engine last operated (soak time), andparameters alike. These parameters are used to compensate the enginespark angle request in steps 318 and 320. The parameters influenceengine operation in different ways depending on their state. Forexample, lower catalyst temperatures produce spark angle retard, buthigher catalyst temperatures advance spark angle.

In step 312, the routine decides to proceed based on whether the engineis rotating. If the engine is not rotating, the routine waits until thecrank position sensor 118 detects engine rotation. If the engine isrotating, the routine proceeds to step 314. In step 314, the controllerdetermines if a synchronized cylinder event has occurred, if so, thesynchronized cylinder event counter increments and the routine continueson to step 316. If no new synchronized cylinder events have occurred,the routine waits until a synchronized cylinder event is observed.

Engine and controller synchronization is determined in step 316. If thecontroller observes signals that allow determination of engine position,the engine controller aligns operations, spark and fuel delivery, toengine timing, becoming synchronized. Upon synchronization the eventcounter is set to zero and the routine continues to step 318. If theengine and the controller are already synchronized, the routine againproceeds to step 318. If synchronization is not established and ifsynchronization cannot be established, the routine returns to step 314.

In step 318, the desired spark request is looked-up from the tablesimilar to the table in FIG. 8, FNESPK. However, spark values used bystep 318 are based on cylinder events after synchronization instead offueled cylinder events as is described by FIG. 8. The spark values inthe table will depend on how the engine is being controlled. Someapplications will prefer a lean cylinder air-fuel mixture promoting portoxidation, while other applications will prefer a rich air-fuel mixturewith air injected into the exhaust manifold. Because the in-cylindermixtures are different, their spark requirements are also different,prompting differences in the FNESPK table based on the application.

After the desired spark is determined, the routine advances to step 320.In step 320, the spark may be modified depending on engine operatingconditions observed in step 310. Compensation for barometric pressure isstored in a function named FNBP. Depending on where nominal barometricpressure is defined in the function, spark is advanced or retarded fromthat point to achieve desired emissions and engine speed run-up. Thefunction has x dimensions of inches of Mercury and y dimensions ofchange (Δ) in spark, with units of angular degrees. Positive values inthe function advance spark while negative values retard spark.

Compensation for air charge temperature is stored in a function namedFNACT. Depending on where nominal air charge temperature is defined inthe function, spark is advanced or retarded from that point to achievedesired emissions and engine speed run-up. The function has x dimensionsof air charge temperature in degrees Fahrenheit and y dimensions ofchange (Δ) in spark, with units of angular degrees.

Compensation is also provided for catalyst temperature by functionFNCAT. In general, FNCAT is calibrated to retard spark angle at lowercatalyst temperatures and advances spark angle at higher catalysttemperatures. Catalyst temperature may be measured or inferred. Thefunction has x dimensions of degrees Fahrenheit and y dimensions ofchange (Δ) in spark, with units of angular degrees.

Compensation for time since last engine operation, soak time, iscaptured in function FNST. In general, FNST is calibrated to retardspark as soak time increases and advance spark as soak time increases.The function has x dimensions of soak time in seconds and y dimensionsof change (Δ) in spark, with units of angular degrees.

All sources of spark compensation are combined into a single change inspark demand that is used to modify the spark angle from step 318. Theroutine then proceeds to step 322 where compensation for operator inputis provided. Operator input may take a number of forms including but notlimited to: changing throttle position, load request via electronicthrottle or electronically controlled valves, torque request, airconditioning, or any device or system that increases load on the engine.In this example, operator input is throttle position. If the operatorinputs a demand to the throttle, the throttle signal is processedthrough the function FNTHROTTLE The function has x dimensions ofthrottle position with units of volts and y dimensions of change (Δ) inspark, with units of angular degrees. The function is calibrated toadvance spark as the throttle input increases, other inputs would followthe same form, increasing user demand advances spark. If the operatorinput is substantially zero, or less than a predetermined amount (e.g.,1-10%, or less than 5%, of total displacement), the function provides nocompensation for the operator input. The routine proceeds to step 324where the desired spark angle is delivered to the engine.

The routine then proceeds to step 326 where the decision is made tocontinue delivering spark based on the number of synchronized cylinderevents or exit to another method of spark control, e.g., independent ofthe number of synchronized cylinder events. If the current number ofsynchronized cylinder events is not less than the calibration parameterEVT_LIM, then the routine proceeds to step 314. If the number ofsynchronized cylinder events is greater than or equal to EVT_LIM, theroutine proceeds to step 328. In step 328, a transition is made fromsynchronized cylinder event based spark to another method of sparkcontrol. For example, time based spark control, where a timer is startedafter the last synchronized cylinder event based spark is delivered andthen spark is delivered as a function of time.

Alternatively, the routine may be designed to transition to speed/loadbased spark. However, care should be exercised in the transition sincespark based on engine speed/load can be influenced by barometricpressure during starting because there is less oxygen at altitude thanwhen at sea level. Once the transition to the alternate spark controlmethod is complete, the routine is exited.

Referring to FIG. 4, a flowchart of an alternate embodiment of fueledcylinder event based spark control. In step 410, engine operatingconditions are read. Operating conditions are determined by measuringengine coolant temperature, engine air temperature, barometric pressure,catalyst temperature, time since engine last operated (soak time), andparameters alike. These parameters are used to compensate the enginespark angle request in steps 418 and 420. In step 412, the routinedetermines if the engine is rotating. If not, the routine waits untilrotation is detected. If rotation is detected, the routine continues onto steps 414 and 424 The final spark demand is the sum of two operationsthat take separate paths in the figure.

The left path begins at step 414, where controller 12 decides to deliverspark based on fueled cylinder events. If the current number of fueledcylinder events is less than the calibration parameter EVT_LIM, then theroutine proceeds to step 416. If the number of events is greater than orequal to EVT_LIM, the routine proceeds to step 426. In step 416, thecontroller determines if a fueled cylinder event has occurred. If so,the fueled cylinder event counter is incremented and the routineproceeds to step 418. If no newly fueled cylinder events have occurred,the routine retains the last fueled cylinder event spark value andproceeds to step 426.

In step 418, the desired spark request is looked up from the table inFIG. 8, FNESPK. After the desired spark is determined, the routineadvances to step 420.

In step 420, the spark may be modified depending on engine operatingconditions observed in step 410. Compensation for barometric pressure isstored in a function named FNBP. Depending on where nominal barometricpressure is defined in the function, spark is advanced or retarded fromthat point to achieve desired emissions and engine speed run-up. Thefunction has x dimensions of inches of Mercury and y dimensions ofchange (Δ) in spark, with units of angular degrees. Positive values inthe function advance spark and negative values retard spark.

Compensation for air charge temperature is stored in a function namedFNACT. Depending on where nominal air charge temperature is defined inthe function, spark is advanced or retarded from that point to achievedesired emissions and engine speed run-up. The function has x dimensionsof air charge temperature in degrees Fahrenheit and y dimensions ofchange (Δ) in spark, with units of angular degrees.

Compensation is also provided for catalyst temperature in functionFNCAT. In general, FNCAT is calibrated to retard spark angle at lowercatalyst temperatures and advances spark angle at higher catalysttemperatures. Catalyst temperature maybe measured or inferred. Thefunction has x dimensions of degrees Fahrenheit and y dimensions ofchange (Δ) in spark, with units of angular degrees. Compensation forsoak time is captured in function FNST. In general, FNST is calibratedto retard spark as soak time increases and advance spark as soak timeincreases. The function has x dimensions of soak time in seconds and ydimensions of change (Δ) in spark, with units of angular degrees.

All sources of spark compensation are combined into a single change inspark that is used to modify the spark angle from step 418. The routinethen proceeds to step 422 where compensation for operator input isprovided. Operator input may take a number of forms including; changingthrottle position, load request via electronic throttle orelectronically controlled valves, torque request, air conditioning, orany device or system that increases load on the engine. In this example,operator input is throttle position. If the operator inputs a demand tothe throttle, the throttle signal is processed through the functionFNTHROTTLE. The function has x dimensions of throttle position withunits of volts and y dimensions of change (Δ) in spark, with units ofangular degrees. The function is calibrated to advance spark as thethrottle input increases, other inputs would follow the same form,increasing user demand advances spark. If the operator input issubstantially zero, or being less than a predetermined amount, thefunction provides no compensation for the operator input. The routinethen proceeds to step 426.

The right path of the routine begins at step 424, where spark based onoperating parameters is determined by any suitable method. The routinethen continues on to step 426. In step 426, spark angles from steps 422and 424 are summed together to create final spark. The structure andcalibration of this routine allows spark control to be based solely onfueled cylinder event number, or an alternative method independent offueled cylinder event number (e.g., based on time, or speed and load),or any combination of the two depending on the calibration. The routinethen proceeds to step 428, where spark is delivered to the engine. Afterspark is delivered to the engine the routine is exited until calledagain.

Referring to FIG. 5, a flowchart of an alternate embodiment ofsynchronized cylinder event based spark control. In step 510, engineoperating conditions are read. Operating conditions are determined bymeasuring engine coolant temperature, engine air temperature, barometricpressure, catalyst temperature, time since engine last operated (soaktime), and parameters alike. These parameters are used to compensate theengine spark angle request in steps 520 and 522. In step 512, theroutine determines if the engine is rotating. If not, the routine waitsuntil rotation is detected. If rotation is detected, the routinecontinues on to steps 514 and 526. The final spark demand is the sum oftwo operations that take separate paths in the figure.

The left path begins at step 514, where controller 12 decides to deliverspark based on synchronized cylinder events. If the current number ofsynchronized cylinder events is less than the calibration parameterEVT_LIM, then the routine proceeds to step 516. If the number of eventsis greater than or equal to EVT_LIM, the routine proceeds to step 528.In step 516, the controller determines if a synchronized cylinder eventhas occurred. If so, the synchronized cylinder event counter isincremented and the routine proceeds to step 518. If no newlysynchronized cylinder events have occurred, the routine retains the lastsynchronized cylinder event spark value and proceeds to step 528.

Engine and controller synchronization is determined in step 518. If thecontroller observes cam and crank signals that allow determination ofengine position, the engine controller operations and engine timingalign, becoming synchronized. Upon synchronization the event counter isset to zero and the routine continues to step 520. If the engine and thecontroller are already synchronized, the routine again proceeds to step520. If synchronization is not established and if synchronization cannotbe established, the routine returns to step 528.

In step 520, the desired spark request is looked-up from a table similarto the table in FIG. 8, FNESPK. However, spark values used in step 520are based on cylinder events after synchronization instead of fueledcylinder events as described by FIG. 8. After the desired spark isdetermined, the routine advances to step 522.

In step 522, the spark may be modified depending on engine operatingconditions observed in step 510. Compensation for barometric pressure isstored in a function named FNBP. Depending on where nominal barometricpressure is defined in the function, spark is advanced or retarded fromthat point to achieve desired emissions and engine speed run-up. Thefunction has x dimensions of inches of Mercury and y dimensions ofchange (Δ) in spark, with units of angular degrees. Positive values inthe function advance spark and negative values retard spark.

Compensation for air charge temperature is stored in a function namedFNACT. Depending on where nominal air charge temperature is defined inthe function, spark is advanced or retarded from that point to achievedesired emissions and engine speed run-up. The function has x dimensionsof air charge temperature in degrees Fahrenheit and y dimensions ofchange (Δ) in spark, with units of angular degrees.

Compensation is also provided for catalyst temperature in functionFNCAT. In general, FNCAT is calibrated to retard spark angle at lowercatalyst temperatures and advances spark angle at higher catalysttemperatures. Catalyst temperature maybe measured or inferred. Thefunction has x dimensions of degrees Fahrenheit and y dimensions ofchange (Δ) in spark, with units of angular degrees. Compensation forsoak time is captured in function FNST. In general, FNST is calibratedto retard spark as soak time increases and advance spark as soak timeincreases. The function has x dimensions of soak time in seconds and ydimensions of change (Δ) in spark, with units of angular degrees.

All sources of spark compensation are combined into a single change inspark that is used to modify the spark angle from step 520. The routinethen proceeds to step 524 where compensation for operator input isprovided. Operator input may take a number of forms including; changingthrottle position, load request via electronic throttle orelectronically controlled valves, torque request, air conditioning, orany device or system that increases load on the engine. In this example,operator input is throttle position. If the operator inputs a demand tothe throttle, the throttle signal is processed through the functionFNTHROTTLE. The function has x dimensions of throttle position withunits of volts and y dimensions of change (Δ) in spark, with units ofangular degrees. The function is calibrated to advance spark as thethrottle input increases, other inputs would follow the same form,increasing user demand advances spark. If the operator input issubstantially zero, or being less than a predetermined amount, thefunction provides no compensation for the operator input. The routinethen proceeds to step 528.

The right path of the routine begins at step 526, where spark based onoperating parameters is determined by any suitable method. The routinethen continues on to step 528. In step 528, spark angles from steps 524and 526 are summed together to create final spark. The structure andcalibration of this routine allows spark control to be based solely onsynchronized cylinder event number, or an alternative method independentof synchronized cylinder event number (e.g., based on time, or speed andload), or any combination of the two depending on the calibration. Theroutine then proceeds to step 530, where spark is delivered to theengine. After spark is delivered to the engine the routine is exiteduntil called again.

Referring to FIG. 6, a plot showing parameters of interest during astart where conventional time based spark is used. Signal magnitudeshave been normalized so that the trajectories of the signals can beviewed together. FIGS. 6 and 7 are scaled equally to allow objectivecomparison of the two methods.

Engine speed (RPM), Hydrocarbon (HCPPM) emissions concentration, timesince start (ATMR1), and spark (SAF) are plotted to show typical signaltrajectories during a cold start. Notice the relationship between thesignals. Spark is held constant until a predetermined engine speed isobserved, then it follows a trajectory described by a table with indicesof engine coolant temperature and time since start. The delivered sparkis not correlated to cylinder events. The approach results in higherhydrocarbon emissions (HCPPM) since individual events are notcontrolled. Note that signal ATMR1 increases linearly and is independentof engine speed or number of fueled or unfueled cylinder events.

Referring to FIG. 7, a plot showing the same parameters as FIG. 6, butwhere fueled cylinder event based spark is used according to oneembodiment of the present invention. Signal magnitudes have beennormalized so that the trajectories of signals can be viewed together.

Engine speed (RPM), hydrocarbons (HCPPM), number of fueled cylinderevents (EVTCNT), and spark (SAFTOT) are plotted to show typical signaltrajectories during a start. Notice the relationship between thesignals, spark is allowed to change based on fueled cylinder eventnumber. The spark follows a trajectory described by a table FNESPK. Thedelivered spark is linked to a specific synchronized cylinder eventwhich results in reduced HC emissions while producing sufficient torqueto run the engine speed up to idle.

Referring to FIG. 8, a table FNESPK, showing example spark desired basedon engine coolant temperature and fueled cylinder event number. Thetable is used to determine the spark to be delivered to a specificfueled cylinder event. The table has x dimensions of engine temperature,in degrees Fahrenheit, and y dimensions of fueled cylinder event number.Typically, table columns and rows are defined by the resolution neededto support the combustion process. In general, enough rows are providedto control individual cylinder events over the first two engine cycles,plus a few additional rows. The additional rows are used to define sparkover a number of fueled cylinder events, reflecting stabilization in thecombustion process as the number of fueled cylinder events increases.Negative values in the table refer to ignition anglesafter-top-dead-center of the compression stroke, while positive valuesrefer to angles before-top-dead center of compression of the compressionstroke.

Regarding, the shape of the columns, spark is delivered at a constantengine temperature over a number of cylinder events. A retarded sparkangle is requested in the first two rows, and then the spark angleincreases. This spark profile recognizes the changing requirements ofspark during a start. The first two cylinder events can tolerate morespark retard because the cylinder charge is nearly free of residualgasses. The next few events request increased spark, to support enginespeed run-up and combustion as residuals increase.

Referring to FIG. 9, a flowchart of a routine performed by controller 12to control fueling based on a sequential strategy is shown. Sequentialfueling strategies deliver unique fuel amounts to each cylinder based onthe corresponding air charge of the cylinder. Fuel may be delivered on aopen or close intake valves. By matching individual fuel amounts withindividual air amounts, sequential fueling strategies offer theopportunity to improve emissions Additional emissions reductions can beachieved by matching spark to individual cylinder events. Sequentialfuel is delivered after the engine and controller 12 are synchronized.In step 910, engine operating conditions are read. Operating conditionsare determined by measuring engine coolant temperature and parametersalike. These parameters are used to compensate engine fuel amountestimates in step 918. In step 912, the routine decides whether tosynchronize air and fuel delivery, step 914, or to proceed and retrievethe engine air amount in step 916. If the air and fuel have not beensynchronized, the controller 12 aligns the two-event predicted engineair amount with the next cylinder on intake stroke. In step 716, theengine air amount is retrieved from an engine air amount estimationroutine. In step 718, the desired Lambda is retrieved from predeterminedvalues stored in a table. The table has x dimension units of enginecoolant temperature (ECT) and y dimension units of time since start.Lambda is calculated as follows:${{Lambda}(\lambda)} = \frac{\frac{Air}{Fuel}}{\frac{Air}{{Fuel}_{stoichiometry}}}$In step 920, fuel mass is calculated based on the engine air amount fromstep 916, and the Lambda value retrieved in step 918. Fuel mass iscalculated as follows:${Fuel\_ Mass} = \frac{{Engine\_ Air}{\_ Amount}}{\frac{Air}{{Fuel}_{stoichiometry}}*{Lambda}}$

In step 922, injector pulse width is calculated using a function whoseinput is desired fuel mass and whose output is injector pulse width. Instep 924, the injectors are activated for the duration determined instep 922. This process occurs for every injection event, using cylinderspecific air amounts, producing cylinder specific fueling.

Referring to FIG. 10, a flowchart of a routine performed by controller12 to provide Big-Bang fueling. Big-Bang fueling decreases the time tostart since engine synchronization is not required. Optimal emissionsare not achieved using Big-bang fueling, but emissions can be reducedwhile decreasing starting time when cylinder event based spark isperformed with Big-bang fueling. Emissions reductions are a result ofmatching spark with cylinders that have received the complete injectionamount. In step 1010 engine operating conditions are read. Operatingconditions are determined by measuring engine coolant temperature andparameters alike. These parameters are used to compensate engine fuelamount estimates in step 1014. In step 1012, engine air amount isretrieved from calculations made in step 1012. In step 1014, the desiredLambda is looked-up using the same method used in step 1018. In step1016, the routine determines if the engine is rotating. If so, allinjectors are fired simultaneously in step 1018, where the firstcylinder event is detected. If the engine is not rotating, fuel is notdelivered and the routine waits until rotation is detected. In step1020, the engine controller 12 determines engine position using signalsprovided by crankshaft 118 and camshaft 150 sensors. Once engineposition is determined, predicted engine air amount and fuel deliveryare aligned. Big Bang fueling provides fuel for two engine revolutionsallowing the controller 12 to wait N3 cylinder events, step 1022, beforebeginning SEFI fueling, step 1024. Note that N3 is the number ofcylinders in the engine.

As will be appreciated by one of ordinary skill in the art, the routinesdescribed in FIGS. 2, 3, 7, and 8 may represent one or more of anynumber of processing strategies such as event-driven, interrupt-driven,multi-tasking, multi-threading, and the like. As such, various steps orfunctions illustrated may be performed in the sequence illustrated, inparallel, or in some cases omitted. Likewise, the order of processing isnot necessarily required to achieve the objects, features and advantagesof the invention, but is provided for ease of illustration anddescription. Although not explicitly illustrated, one of ordinary skillin the art will recognize that one or more of the illustrated steps orfunctions may be repeatedly performed depending on the particularstrategy being used.

This concludes the description of the invention. The reading of it bythose skilled in the art would bring to mind many alterations-andmodifications without departing from the spirit and the scope of theinvention. For example, I3, I4, I5, V6, V8, V10, and V12 enginesoperating in natural gas, gasoline, or alternative fuel configurationscould use the present invention to advantage. Accordingly, it isintended that the scope of the invention is defined by the followingclaims:

1. A spark ignition controlling method for an internal combustion engineof a vehicle, comprising: detecting synchronization between enginetiming and an engine controller during start-up of the engine;commencing counting a number of cylinder events substantially upondetecting synchronization; and adjusting cylinder spark angle based on acounted number of cylinder events since synchronization.
 2. The methodas set forth in claim 1 wherein said cylinder spark angle is adjusted inaccordance with an increase in the said number of cylinder events. 3.The method as set forth in claim 1 wherein said cylinder spark angle isfurther adjusted based on ambient air temperature and enginetemperature.
 4. The method as set forth in claim 1 wherein said cylinderspark angle is further adjusted based on barometric pressure.
 5. Themethod as set forth in claim 1 wherein said cylinder spark angle isfurther adjusted based on catalyst temperature.
 6. The method as setforth in claim 1 wherein said cylinder spark angle is further adjustedbased on a duration since the engine last operated.
 7. The method as setforth in claim 1 wherein said cylinder spark angle is further adjustedbased on air injected into the exhaust system.
 8. The method as setforth in claim 1 wherein said cylinder spark angle is further adjustedbased on operator input.
 9. The method as set forth in claim 8 whereinsaid operator input request is an operator opening a mechanical throttlebody.
 10. The method as set forth in claim 8 wherein said operator inputrequest is made by the operator acting on a device of the vehicle. 11.The method as set forth in claim 1 wherein injected fuel is adjustedbased on said counted number of cylinder events.
 12. The method as setforth in claim 11 wherein injected fuel is delivered synchronous to saidengine timing.
 13. The method as set forth in claim 11 wherein injectedfuel is delivered asynchronous of said engine timing at least onceduring a start; and injecting fuel synchronous to said engine timingafter said start.
 14. A spark ignition controlling method for aninternal combustion engine, comprising: detecting synchronizationbetween engine timing and an engine controller during start-up of theengine; commencing counting a number of cylinder events substantiallyupon detecting synchronization; adjusting a first amount of saidcylinder spark angle based on a counted number of cylinder events sincesynchronization; adjusting a second amount of said cylinder spark angleindependent of said counted number of cylinder events; and deliveringspark to the engine based on said first and second amount.
 15. A sparkignition controlling method for an internal combustion engine,comprising: counting a number of cylinder events from a start of aninternal combustion engine; adjusting a first amount of said cylinderspark angle based on said counted number of cylinder events; adjusting asecond amount of said cylinder spark angle independent of said countednumber of cylinder events; and delivering spark to the engine based onsaid first and second amount.
 16. A spark ignition controlling methodfor an internal combustion engine of a vehicle, comprising: detectingsynchronization between engine timing and an engine controller duringstart-up of the engine; commencing counting a number of cylinder eventsupon detecting synchronization; and adjusting cylinder spark angle basedon a counted number of cylinder events since synchronization, whileoperator input is substantially zero.
 17. The method as set forth inclaim 16 wherein said substantially zero is less than 1-10% of fullrange or less than a predetermined constant.
 18. The method as set forthin claim 16 wherein said operator input is an operator opening amechanical throttle body.
 19. The method as set forth in claim 16wherein said operator input request is made by the operator acting on adevice of the vehicle.
 20. A spark ignition controlling method for aninternal combustion engine, comprising: counting a number of cylinderevents from a start of an internal combustion engine; and calculatingcylinder spark angle based on said counted number of cylinder eventswhile operator input is substantially zero.
 21. The method as set forthin claim 20 wherein said substantially zero is less than 1-10% of fullrange or less than a predetermined constant.
 22. The method as set forthin claim 20 wherein said cylinder spark angle is adjusted in accordancewith an increase in the number of cylinder events.
 23. The method as setforth in claim 20 wherein said cylinder spark angle is further adjustedbased on ambient air temperature and engine temperature.
 24. The methodas set forth in claim 20 wherein said cylinder spark angle is furtheradjusted based on barometric pressure.
 25. The method as set forth inclaim 20 wherein said cylinder spark angle is further adjusted based oncatalyst temperature.
 26. The method as set forth in claim 20 whereinsaid cylinder spark angle is further adjusted based on a soak timer. 27.The method as set forth in claim 20 wherein said cylinder spark angle isfurther adjusted based on air injected into the exhaust system.
 28. Themethod as set forth in claim 20 wherein injected fuel is adjusted basedon said counted number of cylinder events.
 29. The method as set forthin claim 28 wherein injected fuel is delivered synchronous to saidengine timing.
 30. The method as set forth in claim 28 wherein injectedfuel is delivered asynchronous of said engine timing at least onceduring a start; and injecting fuel synchronous to said engine timingafter said start.
 31. A computer readable storage medium having storeddata representing instructions executable by a computer to control aspark ignition internal combustion engine of a vehicle, said storagemedium comprising: instructions for detecting synchronization betweenengine timing and an engine controller during start-up of the engine;instructions for commencing counting a number of cylinder events upondetecting synchronization between engine timing and an engine controlleris determined; and instructions for adjusting cylinder spark angle basedon a counted number of cylinder events since synchronization.
 32. Themethod as set forth in claim 31 wherein said cylinder events includecombustion events.
 33. The method as set forth in claim 31 whereininjected fuel is delivered synchronous to engine timing.
 34. The methodas set forth in claim 31 wherein injected fuel is delivered asynchronousto engine timing.
 35. A spark ignition controlling method for aninternal combustion engine of a vehicle, comprising: detectingsynchronization between engine timing and an engine controller duringstart-up of the engine; commencing counting a number of cylinder eventssubstantially upon detecting synchronization; and varying cylinder sparkangle based on a counted number of cylinder events sincesynchronization.
 36. A spark ignition controlling method for an internalcombustion engine, comprising: counting a number of cylinder events froma start of an internal combustion engine; and varying cylinder sparkangle based on said counted number of cylinder events at least whileoperator input is substantially zero.